# encoding: utf-8
# @File  : run.py
# @Author: wu shaofan
# @Date  :  2024/04/17
# @Desc :report目录下生成allure报告的相关json文件后，执行该脚本，代码实现自动生成html报告
import os
import subprocess
import time
import config
from Utils.set_allure_environment import set_report_xml_on_results


class Report:
    name = None

    def init_run(self):
        # 命令以运行测试并将其结果保存到报告文件夹中
        cmd = 'pytest  --color=yes -p no:sugar --alluredir report --clean-alluredir'
        # 在shell中运行命令
        subprocess.call(cmd, shell=True)

    def init_report(self):
        # 在生成allure报告之前，将准备好的environment.xml配置文件复制到report目录下
        path = config.BASE_DIR+"/report"
        set_report_xml_on_results(path)

        # 命令以生成指定格式的报告并在指定文件夹中
        time1 = time.strftime("%Y%m%d-%H%M%S")
        cmd = f"allure generate report/ -o report/{time1}.html"

        # 在shell中运行命令
        subprocess.call(cmd, shell=True)
        Report.name = time1

    def init_open(self):
        # TODO 这段代码会使用Windows的start命令来打开index.html文件。
        url = "http://localhost:63342/TPshop_webdemo_pro/report/{}.html/index.html".format(Report.name)
        os.system('start {}'.format(url))


if __name__ == '__main__':
    obj = Report()
    obj.init_run()
    obj.init_report()
    obj.init_open()
